//
//  PocoElements.m
//  Buzz API Demo
//
//  Created by Peter Hopkins on 5/12/10.
//  Copyright 2010 Google Inc. All rights reserved.
//
//  Licensed under the Apache License, Version 2.0 (the "License");
//  you may not use this file except in compliance with the License.
//  You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
//  Unless required by applicable law or agreed to in writing, software
//  distributed under the License is distributed on an "AS IS" BASIS,
//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  See the License for the specific language governing permissions and
//  limitations under the License.
//

#import "PocoElements.h"

#import "PocoConstants.h"

#import "GDataBaseElements.h"

@implementation PocoID
+ (NSString *)extensionElementURI { return kPocoNamespace; }
+ (NSString *)extensionElementPrefix { return kPocoNamespacePrefix; }
+ (NSString *)extensionElementLocalName { return @"id"; }
@end


@implementation PocoName
+ (NSString *)extensionElementURI { return kPocoNamespace; }
+ (NSString *)extensionElementPrefix { return kPocoNamespacePrefix; }
+ (NSString *)extensionElementLocalName { return @"name"; }
@end


@implementation PocoDisplayName
+ (NSString *)extensionElementURI { return kPocoNamespace; }
+ (NSString *)extensionElementPrefix { return kPocoNamespacePrefix; }
+ (NSString *)extensionElementLocalName { return @"displayName"; }
@end


@implementation PocoPhotoURL
+ (NSString *)extensionElementURI { return kPocoNamespace; }
+ (NSString *)extensionElementPrefix { return kPocoNamespacePrefix; }
+ (NSString *)extensionElementLocalName { return @"photoUrl"; }
@end


@implementation PocoProfileURL
+ (NSString *)extensionElementURI { return kPocoNamespace; }
+ (NSString *)extensionElementPrefix { return kPocoNamespacePrefix; }
+ (NSString *)extensionElementLocalName { return @"profileUrl"; }
@end


@implementation GDataPerson (PocoAdditions)
+ (void)addPocoPersonExtensionDeclarationsToObject:(GDataObject *)object {
  [object addExtensionDeclarationForParentClass:[GDataAtomAuthor class]
                                   childClasses:[PocoID class], [PocoPhotoURL class], nil];
}

- (NSString *)pocoIdentifier {
  return [[self objectForExtensionClass:[PocoID class]] stringValue];
}

- (NSString *)pocoPhotoURL {
  return [[self objectForExtensionClass:[PocoPhotoURL class]] stringValue];
}

@end
